home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / taropyon / splib / splib.lzh / PRG / LHX / LH.H < prev    next >
C/C++ Source or Header  |  1992-12-07  |  4KB  |  193 lines

  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <io.h>
  4. #include "typedef.h"
  5.  
  6. struct pat
  7. {
  8.     struct pat *nxt;
  9.     char       *bdir;
  10.     char       *fname;
  11.     short        cnt;
  12.     char        pname[1];
  13. };
  14.  
  15. #ifndef __TURBOC__
  16. struct ftime
  17. {
  18.     uint        ft_tsec:5;        /* Two second interval */
  19.     uint        ft_min:6;        /* Minutes */
  20.     uint        ft_hour:5;        /* Hours */
  21.     uint        ft_day:5;        /* Days */
  22.     uint        ft_month:4;     /* Months */
  23.     uint        ft_year:7;        /* Year */
  24. };
  25. #endif
  26.  
  27. struct datetime
  28. {
  29.     ushort        time;
  30.     ushort        date;
  31. };
  32.  
  33. union stamp
  34. {                                /* time stamp */
  35.     ulong        u;
  36.     struct ftime s;
  37.     struct datetime t;
  38. };
  39.  
  40. struct head
  41. {
  42.     short        headersize;
  43.     char        method[6];
  44.     ulong        packed;
  45.     ulong        skip;
  46.     ulong        original;
  47.     union stamp dostime;
  48.     time_t        utc;
  49.     short        attr;
  50.     short        level;
  51.     uint        filecrc;
  52.     uint        headcrc;
  53.     short        dos;
  54.     char       *pathname;
  55.     char       *filename;
  56.     short        dirnlen;
  57.     short        filenlen;
  58.     short        info;
  59.     long        currentpos;
  60.     char       *crcpos;
  61. };
  62.  
  63. struct fb
  64. {                                /* file name buffer */
  65.     struct fb  *nxt;
  66.     char       *cpos;            /* position of effective path name */
  67.     char       *fpos;            /* position of file name */
  68.     long        time;
  69.     char        used;
  70.     char        fname[1];
  71. };
  72.  
  73. #define iskanji(c) ((uchar)(c) >= 0x80 && \
  74.                     (uchar)(c) <= 0x9f || \
  75.                     (uchar)(c) >= 0xe0 && \
  76.                     (uchar)(c) <= 0xfd      )
  77. #define DELIM ('/')
  78. #define DELIM2 (0xffu)
  79. #define DELIMSTR "/"
  80.  
  81. #if 0
  82. struct srchblk
  83. {
  84.     char       *sb_name;
  85.     short        sb_attrib;
  86.     time_t        sb_ftime;
  87.     long        sb_fsize;
  88.     void       *sb_buf;
  89. };
  90. #endif
  91.  
  92. /* from mn.c */
  93. #define MAX_PATH 80
  94.  
  95. extern char arcname[MAX_PATH];
  96. extern char filename1[MAX_PATH];
  97. extern char filename2[MAX_PATH];
  98. extern char filename3[MAX_PATH];
  99. extern FILE *file1, *file2, *file3;
  100. extern int    cmdupdate;
  101. extern char *pager;
  102. extern char *workdir;
  103. extern char *keyword;
  104. extern char cmd;
  105. extern char lhtmp1[], lhtmp2[];
  106. extern char work[];
  107. extern int    errorlevel;
  108.  
  109. void        usage(void);
  110. void        update_arcstamp(void);
  111.  
  112. /* from append.c */
  113. void        copylzh(void);
  114. void        freeze(char *path, char *name);
  115. int         append(void);
  116. int         endappend(void);
  117. void        deletefiles(void);
  118. int         freshen(char *bdir);
  119.  
  120. /* from extract.c */
  121. void        extract(char *bdir);
  122.  
  123. /* from list.c */
  124. void        initlist(void);
  125. void        list(void);
  126. void        endlist(time_t arctime);
  127.  
  128. /* from match.c */
  129. extern struct pat *pbuf;
  130.  
  131. void        initpat(void);
  132. void        regpat(char *pattern, char *bdir);
  133. char       *regbdir(char *bdir);
  134. char       *matchfname(char *pname, char *fname);
  135. char       *matchpat(char *path);
  136. int         tstpat(void);
  137.  
  138. /* from header.c */
  139. extern struct head hpb;
  140.  
  141. void        inithdr(void);
  142. char       *gethdr(int *err);
  143. void        makehdr(void);
  144. void        writehdr(void);
  145. void        adjusthdr(void);
  146.  
  147. /* from files.c */
  148. extern struct fb *fbuf;
  149.  
  150. void        mklist(void);
  151. struct fb  *searchfile(char *path);
  152.  
  153. /* from getopt.c */
  154. extern char flg_r, flg_p, flg_x, flg_m, flg_a, flg_c, flg_n, flg_t, flg_u,
  155.             flg_v, flg_w, flg_i, flg_h, flg_o, flg_z;
  156.  
  157. int         getopt(char *p);
  158.  
  159. /* from util.c */
  160. extern uchar pathdelim;
  161. extern uchar swchar;
  162.  
  163. char       *convdelim(char *path, char delim);
  164. char       *getfilename(char *path);
  165. char       *backpath(char *p);
  166. int         getyn(void);
  167. void        getswchar(void);
  168. time_t        dos2unix(struct ftime * ft);
  169. struct ftime *unix2dos(time_t utc);
  170. int         ratio(ulong a, ulong b, int ord);
  171. void        copyfile(FILE * f1, FILE * f2, long size, int crc_flg);
  172. void       *e_malloc(uint size);
  173. void       *e_realloc(void *buf, int size);
  174. FILE       *myeopen(char *path, char *mode, char *errmes);
  175. FILE       *mywopen(char *path);
  176. FILE       *myropen(char *path);
  177.  
  178. /* from dosio.c */
  179. time_t        getfiletime(FILE * f);
  180. int         setfiletime(FILE * f, time_t utc);
  181. long        diskspace(char *filename);
  182.  
  183. #define makedir(c) mkdir(c)
  184.  
  185. /* from error.c */
  186. void        error(char *errmes, char *p);
  187. void        fileerror(char *err, FILE * file);
  188. void        userbreak(int code);
  189. void        initbreak(void);
  190.  
  191. /* from path.c */
  192. void        form_path(char *p);
  193.